﻿//* Copyright(C) 2005-2012, all rights reserved.
//*
//* The following code is copyrighted and contains proprietary information
/* and trade secrets of Foxit Software Inc.      
**************************************************************************
*/

/**
鼠标事件接口类
*/


define(function (require, exports, module) {
    require('./Event.js');
    var Interface = require('../Interface');
    //接口列表
    var MousePtInterface = new Interface('IReader_MousePtHandler', ['OnLButtonDown', 'OnLButtonUp', 'OnLButtonDblClk', 'OnMouseMove', 'OnRButtonDown'
        , 'OnRButtonUp', 'OnRButtonDblClk', 'OnMouseWheel', 'OnMouseOver', 'OnMouseOut', 'OnMouseLeave', 'OnMouseEnter', 'GetType']);

    /**
     * @description Interface of the mouse event handler.
     * @class Interface of the mouse event handler.
     */
    FXREADER.Event.IReader_MousePtHandler = function () {
    };

    FXREADER.Event.IReader_MousePtHandler.prototype =
    {
    	/**
    	  * @description return the name of the event handler.
    	  * @return {String} the name of the event handler.
    	*/
        GetType: function () { return "Interface"; },
        /**
         * @description trigger by left mouse button click on web reader.
         * @param {object} event information of the event.
         * @return {Boolean}  if return true，the event will not be processed by other “MousePtHandler”, 
 		* otherwise, the event will not be processed by other “MousePtHandler”;
         */
        OnLButtonDown: function (event) { return false; },
        /**
         * @description trigger by left mouse button up.
         * @param {object} event information of the event.
         * @return {Boolean} if return true，the event will not be processed by other “MousePtHandler”, 
 		* otherwise, the event will not be processed by other “MousePtHandler”;
         */
        OnLButtonUp: function (event) { return false; },
        /**
         * @description trigger when left mouse button double click.
         * @param {object} event information of the event.
         * @return {Boolean} if return true，the event will not be processed by other “MainFrmEventHandler”, 
 		* otherwise, the event will not be processed by other “MainFrmEventHandler”;
         */
        OnLButtonDblClk: function (event) { return false; },
        /**
         * @description trigger by mouse move.
         * @param {object} event information of the event.
         * @return {Boolean} if return true，the event will not be processed by other “MainFrmEventHandler”, 
 		* otherwise, the event will not be processed by other “MainFrmEventHandler”;
         */
        OnMouseMove: function (event) { return false; },
        /**
         * @description trigger by right mouse button click on web reader.
         * @param {object} event information of the event.
         * @return {Boolean}  if return true，the event will not be processed by other “MousePtHandler”, 
 		* otherwise, the event will not be processed by other “MousePtHandler”;
         */
        OnRButtonDown: function (event) { return false; },
        /**
         * @description trigger by right mouse button up.
         * @param {object} event information of the event.
         * @return {Boolean} if return true，the event will not be processed by other “MousePtHandler”, 
 		* otherwise, the event will not be processed by other “MousePtHandler”;
         */
        OnRButtonUp: function (event) { return false; },
        /**
         * @description trigger when right mouse button double click.
         * @param {object} event information of the event.
         * @return {Boolean} if return true，the event will not be processed by other “MainFrmEventHandler”, 
 		* otherwise, the event will not be processed by other “MainFrmEventHandler”;
         */
        OnRButtonDblClk: function (event) { return false; },
        OnMouseWheel: function (event) { return false; },
        OnMouseOver: function (event) { return false; },
        OnMouseOut: function (event) { return false; },
        /**
         * @description Trigger when the mouse leaves the web reader.
         * @param {object} event information of the event.
         * @return {Boolean} if return true，the event will not be processed by other “MainFrmEventHandler”, 
 		* otherwise, the event will not be processed by other “MainFrmEventHandler”;
         */
        OnMouseLeave: function (event) { return false; },
        OnMouseEnter: function (event) { return false; }
    };

    FXREADER.Event.IReader_MousePtHandler.EnsureInterface = function (subclass) {
        Interface.ensureImplements(subclass, MousePtInterface);
    };

    return FXREADER.Event.IReader_MousePtHandler;
});